Technique for estimating a state of a drilling apparatus or operation

ABSTRACT

A method includes storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices. The method further includes receiving measurement data associated with a subset of the plurality of measurement devices. The method further includes, in response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, transforming the first data structure into a second data structure based on identities of the one or more measurement devices. The second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset. The method further includes, based on the measurement data and the second data structure, generating an estimation of the state of the drilling apparatus or operation and a confidence value associated with the estimation.

TECHNICAL FIELD

Many devices function Embodiments described herein generally relate to estimating a drilling apparatus or operation state.

BACKGROUND ART

An operator of a drilling apparatus may perform various actions based on a state of the drilling apparatus or an operation associated with the drilling apparatus as reported by a monitoring system. The monitoring system may receive sensor data from a plurality of sensors associated with the drilling apparatus and apply the sensor data to a model to determine the state of the drilling apparatus or operation. The model may be dependent on receiving data from each of the plurality of sensors. However, in some circumstances, the monitoring system may receive data from fewer than all of the plurality of sensors.

SUMMARY

The following presents a simplified summary of the disclosed subject matter in order to provide a basic understanding of some aspects of the subject matter disclosed herein. This summary is not an exhaustive overview of the technology disclosed herein. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is discussed later.

According to one embodiment, a method includes storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices. The method further includes receiving measurement data associated with a subset of the plurality of measurement devices associated with the drilling apparatus or operation. The method further includes, in response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, transforming the first data structure into a second data structure based on identities of the one or more measurement devices. The second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset. The method further includes, based on the measurement data and the second data structure, generating an estimation of the state of the drilling apparatus or operation and a confidence value associated with the estimation.

In another embodiment, a computer-readable storage device stores instructions, that when executed by one or more processors cause the one or more processors to perform operations including storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices. The operations further include receiving measurement data associated with a subset of the plurality of measurement devices. The operations further include, in response to determining that the subset does not include one or more of the plurality of measurement devices, transforming a first data structure into a second data structure based on identities of the one or more measurement devices. The second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset. The operations further include, based on the measurement data and the second data structure, generating an estimation of the state of the drilling apparatus or operation and a confidence value associated with the estimation.

In another embodiment, an apparatus includes one or more processors and a storage device storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices. The apparatus further includes a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including receiving measurement data associated with a subset of the plurality of measurement devices. The operations further include, in response to determining that the subset does not include one or more of the plurality of measurement devices, transforming the first data structure into a second data structure based on identities of the one or more measurement devices. The second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset. The operations further include, based on the measurement data and the second data structure, generating an estimation of the state of the drilling apparatus or operation and a confidence value associated with the estimation.

BRIEF DESCRIPTION OF DRAWINGS

For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.

FIG. 1A is a schematic diagram of an embodiment of a computing system for estimating a state of a device or operation by transforming a data structure.

FIG. 1B is a schematic diagram of a specific example of the computing system for estimating a state of a drilling apparatus or operation by transforming a data structure.

FIG. 2 is a diagram of a process of transforming a data structure.

FIG. 3 is a diagram of a process for generating measurement data that may be used to estimate a state of a device or operation.

FIG. 4 is a diagram illustrating a process of generating a data structure that may be transformed to estimate a state of a device or operation.

FIG. 5 is a flowchart illustrating a method of estimating a state of a device or operation by transforming a data structure.

FIG. 6 is a block diagram illustrating an embodiment of a computing system for use with techniques described herein.

DESCRIPTION OF EMBODIMENTS

In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments disclosed herein. It will be apparent, however, to one skilled in the art that the disclosed embodiments may be practiced without these specific details. In other instances, structure and devices are shown in block diagram form in order to avoid obscuring the disclosed embodiments. References to numbers without subscripts or suffixes are understood to reference all instance of subscripts and suffixes corresponding to the referenced number. Moreover, the language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment.

The terms “a,” “an,” and “the” are not intended to refer to a singular entity unless explicitly so defined, but include the general class of which a specific example may be used for illustration. The use of the terms “a” or “an” may therefore mean any number that is at least one, including “one,” “one or more,” “at least one,” and “one or more than one.” The term “or” means any of the alternatives and any combination of the alternatives, including all of the alternatives, unless the alternatives are explicitly indicated as mutually exclusive. The phrase “at least one of” when combined with a list of items, means a single item from the list or any combination of items in the list. The phrase does not require all of the listed items unless explicitly so defined.

As used herein, the term “computing device” may refer to a device that includes, but is not limited to a single computer, host, server, laptop, and/or mobile device.

As used herein, the term “network device” may refer to any device that is capable of communicating and transmitting data to another device across any type of network.

As used herein, the term “computing system” may refer to a single electronic computing device or network device that includes, but is not limited to a single computer, virtual machine, virtual container, host, server, laptop, and/or mobile device. The term “computing system may also refer to a plurality of electronic computing devices and/or network devices working together to perform the function described as being performed on or by the computing system.

As used herein, the term “medium” refers to one or more non-transitory physical media that together store the contents described as being stored thereon. Embodiments may include non-volatile secondary storage, read-only memory (ROM), and/or random-access memory (RAM).

As used herein, the term “application” refers to one or more computing modules, programs, processes, workloads, threads and/or a set of computing instructions executed by a computing system. Example embodiments of an application include software modules, software objects, software instances and/or other types of executable code.

Sequences of method steps presented herein are provided as examples and are not meant to be limiting. Thus, methods may be performed in an order alternative to that illustrated in the figures and described herein. To illustrate, a method described as including steps “A” and “B” may be performed with “A” either preceding or following “B,” unless a specific order is indicated. Further, “A” and “B” may be performed concurrently.

Systems and methods described herein enable estimating a state of a device or operation (e.g., a drilling apparatus or operation). In particular, the state may be estimated based on data received from an arbitrary number of measurement devices (e.g., sensors, measurement calculation devices, or a combination thereof). For example, the disclosed systems and methods enable estimation of a state of a drill or drilling operation based on measurement data corresponding to less than all of a set of measurement devices used to construct an estimation model. Accordingly, the disclosed systems and methods enable state estimation in cases where one or more of the plurality of measurement devices fails to provide usable data or in cases where the drill is equipped with fewer than all of the plurality of measurement devices. Further, the disclosed systems and methods enable calculation of a confidence value and/or a diminished confidence value associated with an estimation of a state. The diminished confidence value indicates a degree of uncertainty in the estimation due to lack of data from one or more measurement devices.

In operation, the systems and methods transform a first data structure (e.g., a matrix) into a second data structure in response to one or more measurement devices of a plurality of measurement devices failing to provide usable data. The first data structure is associated with estimating the state of the drill or drilling operation based on data from the plurality of measurement devices, and the second data structure is associated with estimating the state of the drill or drilling operation based on data from a subset of the plurality of measurement devices that provide usable data (e.g., less than all of the plurality). The transformation is based on identities of one or more measurement devices that fail to provide usable data. In a particular example, the first data structure includes values indicating counts of instances that various combinations of sensor values corresponded to various states. Transforming the data structure includes summing sensor values for combinations of sensor values that are equivalent when sensor values corresponding to the one or more measurement devices are ignored. The systems and methods further determine entropy (e.g., uncertainty) associated with the summed sensor values. Entropy is greater when the ignored sensor values are more highly indicative of different states than when the ignored sensor values are less indicative of different states.

The systems and methods use the second data structure to generate an estimation of the state of the drill or drilling operation based on the data from less than all of the plurality of measurement devices. Further, the systems and methods generate a confidence value and/or a diminished confidence value based on the entropy. In some implementations, the estimation includes probabilities associated with a plurality of states. For example, the estimation may indicate that there is a first probability that a drill or drilling operation state corresponds to a first state and a second probability that the drill or drilling operation state corresponds to a second state. Accordingly, the systems and methods may be used to estimate a state of a drilling device or operation without imputing missing measurement data or storing different models for different combinations of measurement devices

Referring to FIG. 1A, a diagram illustrating a system 100 for estimating a state of a device (e.g., a drilling apparatus) or operation is shown. The system 100 includes a computing device 102 and a drilling device 114. The computing device 102 may include a server computer, a mobile device, or any other type of computing device. The drilling device 114 may operate in a plurality of states. While illustrated as distinct, the computing device 102 and the drilling device 114 may be components of a single apparatus. For example, the computing device 102 may correspond to a controller of a drilling apparatus. Components of the computing device 102 and the drilling device 114 are described below.

Referring to the computing device 102, the computing device 102 includes a processor 104. While illustrated as a single component, the processor 104 may correspond to one or more processor devices. The processor 104 may correspond to a central processor unit. The computing device 102 further includes a memory device 106 and a storage device 109. The memory device 106 and the storage device 109 may include a computer readable storage device, such as a non-volatile random access memory (RAM), a static RAM, a dynamic RAM, a hard disk drive, a solid state drive, another type of storage media, or a combination thereof.

The computing device 102 further includes an input/output device, such as a display device 108. The display device 108 may correspond to a liquid crystal display (LCD), a light emitting diode (LED) display, or another type of display device or to a display controller, such as a graphics card. The computing device 102 further includes an audio device 110. The audio device 110 may correspond to a speaker or to an audio controller, such as a sound card. The computing device 112 further includes a network interface 112. While illustrated as a single component, the network interface 112 may correspond to one or more interface devices. The network interface 112 may include a wired interface, a wireless interface, or a combination thereof. It should be noted that the configuration of the computing device 102 illustrated in FIG. 1A is provided as an example. Alternative embodiments may include more or fewer components. For example, alternative embodiments of the computing device 102 may not include one or more of the display device 108, the audio device 110, and the network interface 112.

Referring to the drilling device 114, the drilling device 114 includes a plurality of N measurement devices. In the illustrated example, the N measurement devices include a first measurement device 116, a second measurement device 118, and an Nth measurement device 120. Each of the plurality of measurement devices may be configured to monitor one or more conditions associated with the drilling device 114 and generate raw measurement data accordingly. While illustrated as three measurement devices, the plurality of measurement devices may include 2 or more measurement devices. As used herein a measurement device may correspond to a sensor or to a measurement calculation device. Measurement calculation devices include devices that derive measurements based on data (e.g., from a sensor, a clock, a counter, etc.). A measurement device may be a distinct module or may be a component of another device. In embodiments in which the drilling device 114 corresponds to a drilling device, the plurality of measurement devices may include a total depth calculation device, a bit depth calculation device, a torque sensor, a speed sensor, a flow sensor, a pressure sensor, a weight on bit sensor, a block position sensor, a hook load sensor, or a combination thereof.

The plurality of measurement devices may be configured to generate a dataset describing one or more conditions of the drilling device 114, an environment of the drilling device 114, or a combination thereof. For example, the first measurement device 116 may be configured to generate first raw measurement data 122, the second measurement device 118 may be configured to generate second raw measurement data 124, and the Nth measurement device 120 may be configured to generate Nth raw measurement data 126. In some examples, the plurality of measurement devices may generate the dataset by periodically recording measurements at sample times (e.g., every second). The measurements may correspond to a wide range of values. Accordingly, for each sample time, there may be relatively many different possible combinations of measurement values that may be included in the dataset.

The computing device 102 may be configured to determine a state of the drilling device 114 (or an operation associated with the drilling device 114) based on output of the plurality of measurement devices. For example, the storage device 109 may store a first data structure 134 usable by the processor 104 to estimate a state of the drilling device 114 (or the operation) based on data from the plurality of measurement devices. The first data structure 134 is described further below with respect to FIGS. 2 and 4.

The computing device 102 may be unable to use a portion of measurement data associated with the plurality of measurement devices. In the illustrated example of FIG. 1A, the computing device 102 receives the first raw measurement data 122 and the second raw measurement data 124 but does not receive the Nth raw measurement data 126 (e.g., because of a disruption in communication between the computing device 102 and the Nth measurement device 120). In other examples, the Nth measurement device 120 may fail to generate the Nth raw measurement data 126 (e.g., because of a malfunction of or damage to the Nth measurement device 120). In other examples, the computing device 102 may receive the Nth raw measurement data 126 (e.g., receive the entire dataset from the plurality of measurement devices) but be unable to use the Nth raw measurement data 126. For example, the computing device 102 may receive an indication that the Nth raw measurement data 126 is unreliable. The indication may be input by a user of the computing device 102, generated automatically by the Nth measurement device 120 or the drilling device 114, or a combination thereof. In practice, the computing device 102 may be unable to use data from any combination of the plurality of measurement devices for any combination of reasons. For example, the computing device 102 may be unable to use the Nth raw measurement data 126 because the computing device 102 may fail to receive the Nth raw measurement data 126. The computing device 102 may further be unable to use Nth-1 raw measurement data because an Nth-1 measurement device failed. The computing device 102 may further be unable to use an Nth-2 raw measurement data because of an indication that the Nth-2 raw measurement data is unreliable.

In response to determining that a portion of the dataset received from the plurality of measurement devices is unusable (e.g., is unreliable or not received), the processor 104 transforms the first data structure 134 based on identities of one or more measurement devices corresponding to the unusable portion of the dataset. In the example of FIG. 1A, the processor 104 transforms the first data structure 134 into a second data structure 136 in response to not receiving the Nth raw measurement data 126 from the Nth measurement device 120. The processor 104 may initiate storage of the second data structure 136 in the storage device 109. In some examples, the processor 104 may overwrite the first data structure 134 with the transformed second data structure 136. Generation of the second data structure 136 is described in more detail with reference to FIG. 2 below.

In addition to generating the second data structure 136, the processor 104 may transform a usable (e.g., received and not indicated as unreliable) portion of the dataset received from the plurality of measurement devices. In the example illustrated in FIG. 1A, the processor 104 transforms the first raw measurement data 122 and the second raw measurement data 124 into measurement data 132. The measurement data 132 may include values selected from a relatively smaller range of values (e.g., as compared to the values of the dataset). In some examples, values of the measurement data 132 may be binary, ternary, or a combination thereof. To illustrate, a binary value may indicate values of on or off, below or above a threshold value, or the like. A ternary value may indicate a value of decreasing, constant, or increasing. Accordingly, for each sample time, there may be relatively fewer different possible combinations of measurement values that may be included in the measurement data 132 (e.g., as compared to the dataset). Raw measurement data from different measurement devices may be transformed into measurement data according to a common technique or different techniques. Transformation of data is described further below with reference to FIG. 3.

The processor 104 may apply the measurement data 132 to the second data structure 136 to generate an estimation 138 of the state of the drilling device 114 (or the operation associated with the drilling device 114) and a confidence value 139, as described below with reference to FIG. 2. In examples where the drilling device 114 corresponds to a drilling device, the state may correspond to a drilling state, a drilling in cement state, a drilling while sliding state, a tripping in state, a tripping out state, an in slips state, a static state, a wash up state, a wash down state, a reaming in state, a reaming out state, a circulating state, or the like.

Based on the estimation 138, the processor 104 may initiate presentation of one or more messages. The one or more messages may include a visual message 142, an audio message 144, a network message 146 or a combination thereof. For example, the processor 104 may initiate presentation of the visual message 142 via the display device 108. The visual message 142 may include a graphic and/or a video indicating the estimation 138, indicating the confidence value 139 and/or a diminished confidence value associated with the estimation 138, indicating instructions for responding to the estimation 138, announcing a warning, or a combination thereof. As another example, the processor 104 may initiate presentation of the audio message 144 via the audio device 110. The audio message 144 may indicate the estimation 138, indicate instructions for responding to the estimation 138, announce a warning, or a combination thereof. As another example, the processor 104 may initiate transmission of the network message 146 via the network interface 112. The network message 146 may correspond to an electronic mail message, a social media message, a short message service message, an automated telephone call, another type of message, or a combination thereof. The network message 146 may include audio content, visual content, or a combination thereof. The network message 146 may indicate the estimation 138, indicate instructions for responding to the estimation 138, announce a warning, or a combination thereof. In some examples, the processor 104 may initiate presentation of the one or messages based further on the confidence value 139 associated with the estimation 138. For example, the processor 104 may initiate presentation of the one or more messages based on the estimation 138 in response to the confidence value 139 satisfying a confidence threshold. Generation of the confidence value is explained further below with reference to FIG. 2.

In some implementations, the processor 104 may further initiate transmission of one or more control signals to the drilling device 114 based on the estimation 138, the confidence value 139, or a combination thereof. For example, the processor 104 may initiate transmission of one or more signals to deactivate the drilling device 114, to activate the drilling device 114, or to adjust operation of the drilling device 114. To illustrate, the processor 104 may initiate transmission of one or more signals to the drilling device 114 to control a drilling speed or a drill depth associated with the drilling device 114.

Thus, the system 100 may enable estimation of and reaction to a state of the drilling device 114 or an operation associated with the drilling device 114 even in cases where expected measurement data is not received or is not usable. By transforming the first data structure 134 into the second data structure 136, the processor 104 may generate the estimation 138 without imputing the missing Nth raw measurement data 126. Since the processor 104 may determine the estimation 138 without filling in the missing Nth raw measurement data 126, the processor 104 may determine a confidence value and/or a diminished confidence value associated with the estimation 138 associated with missing the Nth raw measurement data 126. Accordingly, the computing device 102 may represent an improvement to techniques for state estimation. Further, the processor 104 may generate the estimation 138 without accessing a model designed specifically for cases where the computing device 102 does not receive the Nth raw measurement data 126. Therefore, the computing device 102 may store fewer models in the storage device 109 in order to estimate the state of the drilling device 114 (or the operation associated with the drilling device 114). Accordingly, demand on the storage device 109 may be decreased and functioning of the computing device 102 may be improved.

Referring to FIG. 1B, a diagram illustrating a specific example of the system 100 in which the drilling device 114 corresponds to a drilling apparatus 180. As illustrated in FIG. 1B, the drilling apparatus 180 includes a top drive 184 and a bit 186. In other examples, the drilling apparatus 180 may include more or fewer components. Additionally, components of the drilling apparatus 180 may be arranged in a different manner than is illustrated in FIG. 1B.

The top drive 184 is configured to rotate the bit 186 so that the bit 186 may bore into a material, such as earth. The top drive 184 and/or the bit 186 may be communicatively coupled to measurement devices. For example, the top drive 184 may be communicatively coupled to a rotations per minute (RPM) sensor 184 and a torque sensor 185. The bit 186 may be communicatively coupled to a weight on bit sensor 187. The RPM sensor 184 is configured to generate RPM data 192 indicating RPM of the top drive 184 over time. The RPM sensor 184 is configured to transmit (e.g., wirelessly transmit) the RPM data 192 to the computing device 102. The torque sensor 185 is configured to generate torque data 190 indicating torque force between the top drive 184 and the drill bit 186 over time. The torque sensor 185 is configured to transmit (e.g., wirelessly transmit) the torque data 190 to the computing device 102. The weight on bit sensor 187 is configured to generate weight data 194 indicating a weight force experienced by the bit 186 over time. The weight on bit sensor 187 is configured to transmit (e.g., wirelessly transmit) the weight data 194 to the computing device 102.

The RPM sensor 184, the torque sensor 185, and the weight on bit sensor 187 may correspond to the first measurement device 116, the second measurement device 118, and the Nth measurement device 120 of FIG. 1A. Accordingly, the first data structure 134 may be usable by the processor 104 to estimate a state of the drilling apparatus 180 (or a drilling operation associated with the drilling apparatus 180) based on data from the RPM sensor 184, the torque sensor 185, and the weight on bit sensor 187. As explained above, during operation, the computing device 102 may not receive usable data from any combination of the RPM sensor 184, the torque sensor 185, and the weight on bit sensor 187. In the illustrated example of FIG. 1B, the computing device 102 does not receive the weight data 194. Accordingly, the processor 104 generates the measurement data 132 based on the torque data 190 and the RPM data 192, as explained above with reference to FIG. 1A. Further, the processor 104 transforms the first data structure 134 into the second data structure 136 based on an identity of the weight on bit sensor 187, as explained above with reference to FIG. 1A. The second data structure 136 is associated with estimating the state of the drilling apparatus 180 (or the operation associated with the drilling apparatus 180) based on data from the RPM sensor 184 and the torque sensor 185. The processor 104 may proceed to generate and react to the estimation 138 and the confidence value 139, as explained above with reference to FIG. 1A. Thus, FIG. 1B illustrates a system for estimating a state of a drilling apparatus or an operation associated with the drilling apparatus.

Referring to FIG. 2, a diagram 200 illustrating transformation of a data structure is shown. The diagram 200 depicts a first data structure 202 and a second data structure 204. The first data structure 202 may correspond to the first data structure 134 and the second data structure 204 may correspond to the second data structure 136. Generation of data structures (e.g., the first data structure 134, the first data structure 202, etc.) from historical data is described further below with reference to FIG. 4. The first data structure 202 may correspond to a p×n matrix Q, where p is a number of distinct measurement data value combinations that occur in historical data used to generate the first data structure 202 and n is a number of distinct states of a device (e.g., the drilling device 114) or an operation. Accordingly, each row i of the first data structure 202 may be associated with a different vector of measurement data values and each column j may be associated with a different state. Each value Q_(ij) of the first data structure 202 may correspond to a number of instances in the historical data that the vector of measurement data values associated with the row i is labeled as corresponding to the state associated with the column j.

Each vector of measurement data values associated with each row i may be formatted [i_(s1), . . . i_(sn)], where i_(s1) is a value in the vector associated with row i that corresponds to a first measurement device (“s₁”). In response to determining that data from one or more of the measurement devices is not usable (e.g., not received or unreliable), a processor (e.g., the processor 104) transforms the first data structure 202, based on identities of the one or more measurement devices. In the illustrated example, the processor transforms the first data structure 202 by collapsing rows (e.g., summing rows) that correspond to vectors of measurement data values that match when measurement data values corresponding to the one or more measurement devices are ignored. In the illustrated example, the processor receives measurement data 203 indicating a vector [1, −1, ?] indicating that measurement device s₃ corresponds to unusable data. Accordingly, the processor determines whether any rows of the first data structure 202 are collapsible when i_(s3) is ignored. As illustrated in FIG. 2, a first vector corresponding to a first row of the first data structure 202 has values of [0, 1, 0]. A second vector corresponding to a second row of the first data structure 202 has values of [0, 1, 1]. When the values corresponding to measurement device s₃ are ignored, both the first vector and the second vector have values of [0, 1]. Accordingly, the processor sums the first row and the second row to transform the first data structure 202 into the second data structure 204.

Once the second data structure 204 is generated, the processor may estimate a state of a device or an operation based on the measurement data 203 and the second data structure 204. In some implementations, the processor may use a k-nearest neighbors algorithm to estimate the state. As part of the k-nearest neighbors algorithm, the processor may identify a set R of vectors, where R is a subset of the set of measurement data value vectors corresponding to rows of the second data structure 204 and each vector in R is within a threshold distance (e.g., Euclidian distance) from the vector indicated by the measurement data 203 (e.g., [1, −1]). In some examples of the k-nearest neighbors algorithm, the processor may recalculate R using an increased threshold distance in response to a number of vectors included in R failing to satisfy a threshold number of vectors.

In an illustrative example, the threshold distance may be equal to 2. The processor may determine that a Euclidian distance between the vector indicated by the measurement data 203 and a vector corresponding to a first row of the second data structure 204 is equal to √{square root over ((1−0)²+(−1−1)²)}=√{square root over (5)}>2. Accordingly, the processor may determine that the vector corresponding to the first row of the second data structure 204 is not to be included in R. The processor may further determine that a Euclidian distance between the vector indicated by the measurement data 203 and a vector corresponding to a second row of the second data structure 204 is equal to √{square root over ((1−1)²+(−1−0)²)}=1<2. Accordingly, the processor may determine that the vector corresponding to the second row of the second data structure 204 is to be included in R. The processor may further determine that a Euclidian distance between the vector indicated by the measurement data 203 and a vector corresponding to a third row of the second data structure 204 is equal to √{square root over ((1−1)²+(−1−1)²)}=2=2. Accordingly, the processor may determine that the vector corresponding to the second row of the second data structure 204 is to be included in R.

Once the processor has calculated R, the processor may identify a collection of rows of the second data structure 204 that correspond to the vectors in R. For each state, the processor may calculate a probability (e.g., a confidence value) of the device (e.g., the drilling device 114) or operation being in the state by summing a column that corresponds to the state in the collection of rows and dividing by a sum of all of the values included in the collection of rows. The processor may generate an estimation (e.g., the estimation 138) based on which state is determined to have a highest probability.

To illustrate, the processor may identify the second row and the third row of the second data structure 204 as the collection of rows corresponding to the vectors in R. The processor may calculate a probability that the state of the device or operation is a first state by dividing a sum of a first column of the collection by a sum of a total of the collection. Accordingly, the probability that the state of the device or operation is the first state may be equal to

$\frac{2 + 1}{2 + 1 + 3 + 2 + 4 + 3} = {\frac{3}{15} = {{.2}.}}$

The processor may calculate a probability that the state of the device or operation is a second state by dividing a sum of a second column of the collection by the sum of a total of the collection. Accordingly, the probability that the state of the device or operation is the second state may be equal to

$\frac{3 + 2}{2 + 1 + 3 + 2 + 4 + 3} = {\frac{5}{15} \approx {{.33}.}}$

The processor may calculate a probability that the state of the device or operation is a third state by dividing a sum of a third column of the collection by a sum of a total of the collection. Accordingly, the probability that the state of the device or operation is the third state may be equal to

$\frac{4 + 3}{2 + 1 + 3 + 2 + 4 + 3} = {\frac{7}{15} \approx {{.47}.}}$

Since the third state has a highest probability (e.g., because 0.47>0.33>0.2), the processor may generate a estimation indicating that the device is in the third state. In some examples, the processor further determines a degree of diminished confidence in response to determining that R includes a vector that is a result of collapsing rows in the first data structure 202. The processor may determine the degree of diminished confidence based on entropy values associated with collapsing the rows of the first data structure 202. Entropy may increase relatively more when the rows that are collapsed to generate the vector strongly indicate different states (e.g., because data from an associated ignored measurement device is highly linked to distinguishing between states). Entropy may increase relatively less when the rows that are collapsed do not strongly indicate different states (e.g., because data from the associated ignored measurement device is not highly linked to distinguishing between states). The probability associated with a state (e.g., the confidence value) may be discounted by the diminished confidence value. In some implementations, the processor is configured to generate an error message (e.g., indicating an unidentifiable state) in response to determining that no confidence value satisfies a confidence threshold.

Therefore, FIG. 2 illustrates how a first data structure may be transformed into a second data structure based on available measurement data and how the second data structure may be used to estimate a state of a device or operation. The process described with reference to FIG. 2 may enable a system to estimate the state of the device or operation even when data associated with arbitrary combinations of measurement devices is unreliable.

Referring to FIG. 3, a diagram 300 illustrating processes for transforming raw measurement data is shown. The diagram 300 depicts a data conversion process 304 that may be performed by a processor, such as the processor 104 of FIG. 1. FIG. 3 depicts the data conversion process 304 converting raw measurement data 302 into measurement data 318. The raw measurement data 302 may correspond to the first raw measurement data 122 and the second raw measurement data 124. The measurement data 318 may correspond to the measurement data 132. As explained above, raw measurement data, such as the raw measurement data 302, may correspond to a series of periodically recorded measurements selected from a wide range of possible values.

The data conversion process 304 may include a plurality of sub-processes. In the illustrated example, the sub-processes include an outlier filter process 308, a smoothing process 310, a normalization process 312, a change point detection process 314, and a lag filter process 316. Alternative examples of the data conversion process 304 may include different combinations of sub-processes. The sub-processes are described in more detail below.

The outlier filter process 308 may receive the raw measurement data 302 (e.g., the first raw measurement data 122 and the second raw measurement data 124). The processor executing the outlier filter process 308 may generate processed measurement data by removing outlier values from the raw measurement data 308. In some examples, the outlier filter process 308 utilizes a median absolute deviation algorithm to remove outliers from the raw measurement data 124.

The smoothing process 310 may receive the processed data from the outlier filter process 308 and generate smoothed data by removing high frequency noise from the processed data. In some examples, the smoothing process 310 utilizes a Gaussian kernel based smoothing algorithm. The Gaussian kernel may, for example, be

${K\left( {x,x^{\prime}} \right)} = {{\exp \left( {- \frac{\left. ||{x - x^{\prime}} \right.||^{2}}{2\sigma^{2}}} \right)}.}$

The normalization process 312 may receive the smoothed data from the outlier filter process 308 and generate normalized data based on the smoothed data. In some examples, the normalization process 312 may utilize a max-min normalization algorithm so that the normalized data has a range of (0, 1). The max-min normalization algorithm may be based on the following equation:

${Z_{i} = \frac{x_{i} - {\min (x)}}{{\max (x)} - {\min (x)}}},$

where x are values in the smoothed data and z are values in the normalized data.

The change point detection process 314 may receive the normalized data from the normalization process 312 and identify change points in the normalized data. In some implementations, the change point detection process 314 may utilize a median shift detector algorithm to detect change points in the normalized data. Once change points are identified, the change point detection process 314 generates the measurement data 318 based on the change points. The measurement data 318 may correspond to a lower dimensional representation of the raw measurement data 302. For example, the measurement data 318 may use a ternary value to denote whether a trend between two consecutive change points is increasing, decreasing or staying constant rather than including each data point included in the raw measurement data 302. In addition or in the alternative, the measurement data 318 may include binary values indicating whether a particular component is on or off. Since values of the measurement data 318 are drawn from fewer dimensions (e.g., 3 or 2) than the raw measurement data 302, the measurement data 318 may have fewer possible combinations of values as compared to the raw measurement data 302. Thus, FIG. 3 illustrates a process that may be used to generate a simplified version of raw measurement data.

Referring to FIG. 4, a diagram 400 illustrating processes for generating a data structure based on raw historical data is shown. The process illustrated in FIG. 4 may be used to generate a first data structure 416 based on historical raw measurement data 402. The first data structure 416 may correspond to the first data structure 134 of FIG. 1 or to the first data structure 202 of FIG. 2. For example, the processor 104 may perform the process of FIG. 4 to generate the first data structure 134. Alternately another device may perform the process of FIG. 4 to generate the first data structure 134 and then transmit the first data structure 134 to the computing device 102.

The process of FIG. 4 includes performing the data conversion process 304, as described with reference to FIG. 3, on the historical raw measurement data 402 to generate historical measurement data 406. Accordingly, vectors of the historical measurement data 406 may have fewer possible combinations of values as compared to the historical raw measurement data 402.

The process of FIG. 4 further includes applying a label process 408 to the historical measurement data 406 to generate labeled historical measurement data 412. The label process 408 may assign a label indicating a state of a device (e.g., the drilling device 114) or operation to each vector of measurement data values in the historical measurement data 406 using a deterministic model. In some examples, the deterministic model may correspond to a decision tree.

The process of FIG. 4 further includes building the first data structure 416 based on the labeled historical measurement data using a training process 414. For example, the training process 414 may construct a p×n matrix Q corresponding to the first data structure 416. P may be a number of different vectors of measurement data values that occur in the labeled historical measurement data 412 and n may be a number of different states of the device (e.g., the drilling device 114) or operation. Each value Q_(ij) of Q may correspond to a number of instances that a measurement data vector corresponding to row i is labeled as the state corresponding to column j. Since the matrix Q includes rows corresponding to measurement data vectors that occur in the labeled historical data 412, the matrix Q may be smaller and less complex than if a row for every possible measurement data vector were included in Q. For example, because a first measurement data value associated with total depth never indicates a decrease at the same time a second measurement data value associated with bit depth indicates an increase in the labeled historical data 412, the Q matrix may not include rows associated with measurement data vectors for that combination of values. Additionally, since the labeled historical measurement data 412 includes fewer possible combinations of measurement data values than the historical raw measurement data 402, the size of the Q matrix may be further reduced as compared to a matrix generated based on the historical raw measurement data 402.

Thus, the process illustrated in FIG. 4 may be used to generate a data structure usable to estimate a state of a device or operation. The data structure may be smaller as compared to other data structures. Accordingly, the data structure may consume less storage space in a memory device. Further a processor using the data structure to estimate a state of the device may perform fewer calculations due to a smaller size of the data structure.

Referring to FIG. 5, a flowchart illustrating a method 500 of estimating a state of a device or operation is shown. The method 500 may be performed by the processor 104 of FIG. 1. The method 500 includes storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices, at 502. For example, the processor 104 may store the first data structure 134 in the memory device 106 and/or the storage device 109.

The method 500 further includes receiving measurement data associated with a subset of the plurality of measurement devices associated with the drilling apparatus or operation, at 504. For example, the processor 104 may receive the measurement data 132 (or the first raw measurement data 122 and the second raw measurement data 124) associated with the first measurement device 116 and the second measurement device 118 (e.g., a subset of the first measurement device 116-the Nth measurement device 120).

In response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, the method 500 includes transforming the first data structure into a second data structure based on identities of the one or more measurement devices, at 506. The second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset. For example, the subset of measurement devices from which the processor 104 receives data may not include the Nth measurement device 120 (e.g., because the Nth raw measurement data 126 was not received or because the Nth raw measurement data 126 was indicated as unreliable). In response to determining that the subset does not include the Nth measurement device 120, the processor 104 may transform the first data structure 134 into the second data structure 136, as described with reference to FIG. 2. The first data structure 134 may be associated with estimating a state of the drilling device 114 based on data from each of the first measurement device 116, the second measurement device 118, and the Nth measurement device 120 (e.g., the plurality of measurement devices). The second data structure 136 may be associated with estimating the state of the drilling device 114 based on the first measurement device 116 and the second measurement device 118 (e.g., the subset of measurement devices).

The method 500 further includes, based on the measurement data and the second data structure, generating an estimation of the state of the drilling apparatus or operation and a confidence value associated with the estimation, at 508. For example, the processor 104 may generate the estimation 138 based on the measurement data 132 and the second data structure 136. Further, the processor 104 may generate the confidence value 139 associated with the estimation 138. Accordingly, the method 500 may enable estimation of a state of a device when measurement data associated with estimating the state is not received or is unreliable. The method 500 may consume fewer storage resources as compared to techniques involving storing unique estimation models for each combination of received measurement data. Further, the method 500 may enable determination of confidence values, as compared to techniques that rely on imputation of lost measurement data.

Referring now to FIG. 6, a block diagram illustrates a computing device 600 that may be used for implementing the techniques described herein in accordance with one or more embodiments. For example, the computing device 600 illustrated in FIG. 6 could represent a client device or a physical server device. In some implementations, the computing device 600 corresponds to the computing device 102 of FIG. 1. As shown in FIG. 6, the computing device 600 can include one or more input/output devices, such as a network communication unit 608 that could include a wired communication component and/or a wireless communications component, which can be coupled to processing element 602. The network communication unit 608 can utilized any of a variety of standardized network protocols, such as Ethernet, TCP/IP, to name a few of many protocols, to effect communications between devices and comprise one or more transceiver(s) that utilize the Ethernet, power line communication (PLC), WiFi, and/or other communication methods.

The computing system 600 includes a processing element 602 that contains one or more hardware processors, where each hardware processor may have a single or multiple processor cores. In one embodiment, the processing element 602 may include at least one shared cache that store data (e.g., computing instructions) that are utilized by one or more other components of processing element 602. For example, the shared cache may be locally cached data stored in a memory for faster access by components of the processing elements 602. In one or more embodiments, the shared cache may include one or more mid-level caches, such as level 2 (L2), level 3 (L3), level 4 (L4), or other levels of cache, a last level cache (LLC), or combinations thereof. Examples of processors include, but are not limited to a central processing unit (CPU) a microprocessor. Although not illustrated in FIG. 6, the processing element 602 may also include one or more other types of hardware processing components, such as graphics processing units (GPU), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or digital signal processors (DSPs).

FIG. 6 illustrates that memory 604 may be operatively coupled to processing element 602. Memory 604 may be a non-transitory medium configured to store various types of data. For example, memory 604 may include one or more memory devices that comprise a non-volatile storage device and/or volatile memory. Volatile memory, such as random access memory (RAM), can be any suitable non-permanent storage device. The non-volatile storage devices can include one or more disk drives, optical drives, solid-state drives (SSDs), tap drives, flash memory, read only memory (ROM), and/or any other type memory designed to maintain data for a duration time after a power loss or shut down operation. In certain instances, the non-volatile storage device may be used to store overflow data if allocated RAM is not large enough to hold all working data. The non-volatile storage device may also be used to store programs that are loaded into the RAM when such programs are selected for execution. In the illustrated example, the memory 604 stores state estimation instructions 612. The state estimation instructions 612 may be executable by the processor 602 to perform any of the operations of methods described with respect to FIGS. 1-5.

Persons of ordinary skill in the art are aware that software programs may be developed, encoded, and compiled in a variety computing languages for a variety software platforms and/or operating systems and subsequently loaded and executed by processing element 602. In one embodiment, the compiling process of the software program may transform program code written in a programming language to another computer language such that the processing element 602 is able to execute the programming code. For example, the compiling process of the software program may generate an executable program that provides encoded instructions (e.g., machine code instructions) for processor 602 to accomplish specific, non-generic, particular computing functions.

After the compiling process, the encoded instructions may then be loaded as computer executable instructions or process steps to processing element 602 from storage (e.g., memory 604) and/or embedded within the processing element 602 (e.g., cache). Processing element 602 can execute the stored instructions or process steps in order to perform instructions or process steps to transform the computing device into a non-generic, particular, specially programmed machine or apparatus. Stored data, e.g., data stored by a storage device, can be accessed by processing element 602 during the execution of computer executable instructions or process steps to instruct one or more components within the computing device 600.

A user interface 610 can include a display, positional input device (such as a mouse, touchpad, touchscreen, or the like), keyboard, or other forms of user input and output devices. The user interface 610 can be coupled to processor element 602. Other output devices that permit a user to program or otherwise use the computing device can be provided in addition to or as an alternative to network communication unit 608. When the output device is or includes a display, the display can be implemented in various ways, including by a liquid crystal display (LCD) or a cathode-ray tube (CRT) or light emitting diode (LED) display, such as an OLED display. Persons of ordinary skill in the art are aware that the computing device 600 may comprise other components well known in the art, such as measurement devices, powers sources, and/or analog-to-digital converters, not explicitly shown in FIG. 6. For ease of discussion, FIG. 6 explanation of these other components well known in the art.

At least one embodiment is disclosed and variations, combinations, and/or modifications of the embodiment(s) and/or features of the embodiment(s) made by a person having ordinary skill in the art are within the scope of the disclosure. Alternative embodiments that result from combining, integrating, and/or omitting features of the embodiment(s) are also within the scope of the disclosure. Where numerical ranges or limitations are expressly stated, such express ranges or limitations may be understood to include iterative ranges or limitations of like magnitude falling within the expressly stated ranges or limitations (e.g., from about 1 to about 10 includes, 2, 3, 4, etc.; greater than 0.10 includes 0.11, 0.12, 0.13, etc.).

Use of the term “optionally” with respect to any element of a claim means that the element is required, or alternatively, the element is not required, both alternatives being within the scope of the claim. Use of broader terms such as comprises, includes, and having may be understood to provide support for narrower terms such as consisting of, consisting essentially of, and comprised substantially of. Accordingly, the scope of protection is not limited by the description set out above but is defined by the claims that follow, that scope including all equivalents of the subject matter of the claims. Each and every claim is incorporated as further disclosure into the specification and the claims are embodiment(s) of the present disclosure.

It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments may be used in combination with each other. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It should be noted that the discussion of any reference is not an admission that it is prior art to the present invention, especially any reference that may have a publication date after the priority date of this application. 

What is claimed is:
 1. A method comprising: storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices; receiving measurement data associated with a subset of the plurality of measurement devices associated with the drilling apparatus or operation; in response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, transforming the first data structure into a second data structure based on identities of the one or more measurement devices, wherein the second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset; and based on the measurement data and the second data structure, generating: an estimation of the state of the drilling apparatus or operation; and a confidence value associated with the estimation.
 2. The method of claim 1, further comprising presenting, via an output device, a message based on the estimation, the message including an audible component, a visual component, or a combination thereof.
 3. The method of claim 2, wherein the message includes a warning associated with the estimation of the state.
 4. The method of claim 1, wherein the plurality of measurement devices includes a sensor, a measurement calculation device configured to calculate a measurement, or a combination thereof.
 5. The method of claim 4, wherein the plurality of measurement devices includes a device configured to calculate total depth, a device configured to calculate bit depth, a torque sensor, a speed sensor, a flow sensor, a pressure sensor, a weight on bit sensor, a block position sensor, a hook load sensor, or a combination thereof.
 6. The method of claim 4, wherein the state includes a drilling state, a drilling in cement state, a drilling while sliding state, a tripping in state, a tripping out state, an in slips state, a static state, a wash up state, a wash down state, a reaming in state, a remaining out state, or a circulating state.
 7. The method of claim 1, wherein the first data structure indicates a first number of instances that a first combination of measurement values corresponded to the state and a second number of instances that a second combination of measurement values corresponded to the state, and wherein transforming the first data structure based on the identities of the one or more measurement devices includes summing the first number and the second number in response to determining that the first combination matches the second combination when measurement values associated with the one or more measurement devices are ignored.
 8. The method of claim 1, further comprising generating the measurement data by calculating change point values based on raw data received from the subset.
 9. The method of claim 1, wherein receiving the measurement data includes receiving a dataset associated with the plurality of measurement devices and, in response to determining that the one or more measurement devices are unreliable, generating the measurement data based on a portion of the dataset that is independent of the one or more measurement devices.
 10. The method of claim 9, further comprising determining that the one or more measurement devices are unreliable based on user input.
 11. The method of claim 1, further comprising constructing the first data structure by applying a deterministic model to historical measurement data to determine a number of occurrences of each of a plurality of states for each combination of values corresponding to the plurality of measurement devices.
 12. The method of claim 11, wherein the first data structure corresponds to a p×n matrix, wherein p is a number of distinct measurement data value combinations present in the historical measurement data and n is a number of states included in the plurality of states.
 13. The method of claim 1, wherein generating the estimation includes applying a k nearest neighbors algorithm to the second data structure.
 14. The method of claim 1, further comprising calculating the confidence value based on an entropy value associated with transforming the first data structure into the second data structure.
 15. A computer-readable storage device storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices; receiving measurement data associated with a subset of the plurality of measurement devices associated with the drilling apparatus or operation; in response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, transforming the first data structure into a second data structure based on identities of the one or more measurement devices, wherein the second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset; and based on the measurement data and the second data structure, generating: an estimation of the state of the drilling apparatus or operation; and a confidence value associated with the estimation.
 16. The computer-readable storage device of claim 15, wherein the operations further include converting raw measurement data received from the subset to binary data, ternary data, or a combination thereof.
 17. The computer-readable storage device of claim 16, wherein the operations further include initiating transmission of a message to another device, the message indicating the estimation.
 18. The computer-readable storage device of claim 17, wherein the message corresponds to an electronic mail message, to a short message service message, a social networking service message, or a combination thereof.
 19. The computer-readable storage device of claim 15, wherein the operations further comprise initiating transmission of control signals to the drilling apparatus or operation based on the estimation.
 20. An apparatus comprising: one or more processors; a storage device storing a first data structure associated with estimating a state of a drilling apparatus or operation based on data from a plurality of measurement devices; and a memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: receiving measurement data associated with a subset of the plurality of measurement devices associated with the drilling apparatus or operation; in response to determining that the subset does not include one or more measurement devices of the plurality of measurement devices, transforming the first data structure into a second data structure based on an identities of the one or more measurement devices, wherein the second data structure is associated with estimating the state of the drilling apparatus or operation based on data from the subset; and based on the measurement data and the second data structure, generating: an estimation of the state of the drilling apparatus or operation; and a confidence value associated with the estimation. 